//多数表决器设计

// 请编写一个 Verilog 模块，实现一个 3 输入的多数表决器（Majority Voter）。
// 模块接口如下：
// 1
// module majority _voter(
// 2
// input wire a,
// 3
// input wire b,
// 4
// input wire c,
// 5
// output wire y
// 6
// );
// Listing 1: Majority Voter 模块接口
// • 若 a、b、c 中至少有两个为 1，则 y 输出 1；否则输出 0；
// • 提供完整 Verilog 代码；
// • 编写测试平台并附上仿真波形截图。




module majority_voter(
    input wire a,
    input wire b,
    input wire c,
    output wire y
);

    //wire类型需要用assign语句来赋值
    assign y = (a&b) | (b&c) | (a&c);
endmodule 


`timescale 1ns/100ps
//testbench of majority_voter
module majority_voter_tb;
    reg[2:0] _input;
    wire y;

    majority_voter majority_voter (.a(_input[0]), .b(_input[1]), .c(_input[2]), .y(y));

    initial begin
        _input <= 0;
    #80 $stop;
    end

    always #10 _input <= _input+1;

endmodule

